package org.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.example.dto.UserInfoDTO;
import org.example.dto.UserOnlineDTO;
import org.example.entity.TUserInfo;
import org.example.vo.*;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

public interface UserInfoService extends IService<TUserInfo> {

    void updateUserInfo(UserInfoVO userInfoVO);

    String updateUserAvatar(MultipartFile file);


    void updateUserSubscribe(SubscribeVO subscribeVO);

    void updateUserRole(UserRoleVO userRoleVO);

    void updateUserDisable(UserDisableVO userDisableVO);

    PageResult<UserOnlineDTO> listOnlineUsers(ConditionVO conditionVO);

    @Transactional(rollbackFor = Exception.class)
    void saveUserEmail(EmailVO emailVO);

    void removeOnlineUser(Integer userInfoId);

    UserInfoDTO getUserInfoById(Integer id);
}
